#!/bin/bash

# general config
. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
    start)
	if [ "${msg_lang}" = "cn" ]; then
		stat_busy "开启 D-BUS 系统消息总线"
	else
		stat_busy "Starting D-BUS system messagebus"
	fi
	if [ ! -x /var/run/dbus ] ; then
	    install -m755 -g 81 -o 81 -d /var/run/dbus
	fi
        if [ -x /usr/bin/dbus-uuidgen ] ; then
            /usr/bin/dbus-uuidgen --ensure
        fi

        /usr/bin/dbus-daemon --system
        if [ $? -gt 0 ]; then
            stat_fail
        else
            add_daemon dbus
            stat_done
        fi
        ;;
    stop)
	if [ "${msg_lang}" = "cn" ]; then
		stat_busy "关闭 D-BUS 系统消息总线"
	else
		stat_busy "Stopping D-BUS system messagebus"
	fi
	[ -f /var/run/dbus.pid ] && kill `cat /var/run/dbus.pid` >/dev/null 2>&1
        if [ $? -gt 0 ]; then
            stat_fail
        else
	    rm -f /var/run/dbus.pid
            rm_daemon dbus
            stat_done
        fi
        ;;
    restart)
        $0 stop
	sleep 1
        $0 start
        ;;
    reload)
		if [ "${msg_lang}" = "cn" ]; then
			stat_busy "重新载入 D-BUS 设置"
		else
			stat_busy "Reloading D-BUS configuration"
		fi
        [ -f /var/run/dbus.pid ] && /usr/bin/dbus-send \
                --system --type=method_call \
                --dest=org.freedesktop.DBus \
                / org.freedesktop.DBus.ReloadConfig
        if [ $? -gt 0 ]; then
            stat_fail
        else
            stat_done
        fi
        ;;
    *)
        echo "usage: $0 {start|stop|restart|reload}"
	;;
esac
exit 0
